package cn.edu.cuit.mockfns.fam.transition;

import cn.edu.cuit.mockfns.fam.Action;
import cn.edu.cuit.mockfns.fam.tuples.Function;
import cn.edu.cuit.mockfns.fam.tuples.State;

public class Transition
{
    private State currentState;
    private State nextState;
    private Function function;
    private Action action;

    public Transition()
    {
    }

    public Transition(State currentState, State nextState, Function function)
    {
        this( currentState, nextState, function, null );
    }

    public Transition(State currentState, State nextState, Function function, Action action)
    {
        this.currentState = currentState;
        this.function = function;
        this.nextState = nextState;
        this.action = action;
    }

    public State getCurrentState()
    {
        return currentState;
    }

    public void setCurrentState( State currentState )
    {
        this.currentState = currentState;
    }

    public State getNextState()
    {
        return nextState;
    }

    public void setNextState( State nextState )
    {
        this.nextState = nextState;
    }

    public Function getFunction()
    {
        return function;
    }

    public void setFunction( Function function )
    {
        this.function = function;
    }

    public Action getAction()
    {
        return action;
    }
}
